Pular para o conteúdo principal

4.1. Diagrama de Componentes UML

Este diagrama descreve a arquitetura de componentes do simulador automotivo, incluindo os dispositivos físicos e os softwares envolvidos no sistema.

Diagrama de Componentes


Computador Pessoal (PC)

Responsável por executar o simulador de corrida e controlar todos os periféricos e interfaces do sistema.

Componentes e Conexões:

  • Simulador de Corrida (JOGO): Software principal responsável por renderizar a simulação do veículo e capturar inputs do volante e pedais.
  • SIMHUB: Middleware que intermedeia a comunicação entre os sensores físicos e o jogo, podendo enviar sinais de feedback ou ler dados de telemetria.
  • Interface Ethernet para Simhub: Conexão para envio/recebimento de telemetria.
  • Saída HDMI para Monitor: Visualização gráfica do jogo.
  • Interface USB para Arduino: Comunicação com leitura de pedais e controle de vibração.
  • Interface USB para Odesc: Comunicação com a controladora de force feedback.

O JOGO é aberto pelo próprio SIMHUB, que executa o jogo encapsulado, captando e retransmitindo as informações de entrada e saída.


Simhub

Middleware instalado no PC para leitura e envio de dados do simulador.

Responsabilidades:

  • Leitura de Dados do Simulador
  • Processamento de Telemetria
  • Interface Ethernet para Raspberry Pi: Envio de telemetria para exibição remota.

Monitor

Dispositivo de saída de vídeo ligado ao PC.

  • Display do Jogo: Exibe a simulação gráfica do software de corrida.

Arduino

Microcontrolador responsável por intermediar periféricos e o sistema principal.

Funções:

  • Leitura de Pedais e Botões: Captura as entradas físicas do usuário.
  • Envio PWM para Motor Drive: Controle de intensidade dos motores de vibração.
  • Interface USB de Sensores: Comunicação com sensores auxiliares.

Atua como intermediário entre os pedais e os módulos de vibração, tanto para coleta de dados quanto para feedback tátil.


Motor Drive

Placa controladora de vibração.

  • Driver de Vibração: Recebe os sinais PWM do Arduino.
  • Conectado aos Motores de Vibração: Atua diretamente sobre os atuadores táteis.

Vibration Motors

  • Motores de Vibração: Responsáveis por gerar resposta tátil baseada na simulação, como batidas, saídas de pista ou mudanças de terreno.

Volante

Componente físico principal de controle da direção.

Composição:

  • Firmware (interno): Sistema embarcado que interpreta os comandos do usuário e envia sinais ao PC, sendo reconhecido como um dispositivo de entrada (joystick HID).
  • Motor: Responsável pela aplicação do force feedback com base nas instruções da controladora.

O firmware também envia comandos ao motor, ativando reações físicas de acordo com os dados do jogo (feedback tátil, retorno de força, etc).


Odesc

Placa controladora de motores brushless voltada para force feedback.

Funções:

  • Controle FFB: Interpreta os dados de telemetria e gera o retorno de força apropriado.
  • Interface com Encoder: Leitura da posição angular do volante.
  • Controle de Torque: Define o comportamento e resistência do motor.
  • Frenagem Regenerativa: Converte energia mecânica em elétrica.

Brushless Motor

  • Motor Volante: Executa fisicamente o feedback do volante, reproduzindo forças, colisões e pesos com precisão.

Encoder

  • Sensor de Posição: Mede com exatidão a rotação e posição angular do volante, alimentando a Odesc com dados para controle dinâmico.

Resistor

  • Dissipador de Energia: Dissipa a energia gerada pela frenagem regenerativa, protegendo o sistema contra sobrecarga.

Raspberry Pi

Microprocessador auxiliar responsável pela exibição remota da telemetria do jogo.

Funções:

  • Recebimento de Telemetria do Simhub: Recebe dados por Ethernet.
  • Saída HDMI para Display: Exibe a informação na Tela 7”.

Atua como intermediário entre o Simhub e a tela do painel de direção, montando o painel digital do simulador.


Display 7"

Display HDMI conectado ao Raspberry Pi.

  • Tela de Telemetria: Apresenta informações como marcha, RPM, velocidade, temperatura e dados em tempo real da simulação.

Pedais

Conjunto de acelerador, freio e embreagem (se houver), conectado ao Arduino.

  • Detecção de Posição: Envia os valores de pressão/posição ao sistema.
  • Feedback Tátil (se disponível): Pode gerar vibração ou resposta por meio do Motor Drive.

Fluxo de Comunicação

  • PC ↔ Simhub: Comunicação contínua com o jogo e os periféricos.
  • Simhub ↔ Raspberry Pi: Envio de dados de telemetria para painel externo.
  • PC ↔ Arduino: Envia e recebe dados dos pedais e do driver de vibração.
  • PC ↔ Odesc: Controla motor do volante com base nos dados do encoder.
  • Arduino ↔ Motor Drive ↔ Vibration Motors: Controle tátil via PWM.
  • Odesc ↔ Brushless Motor + Encoder: Controle de força e posição do volante.
  • Odesc ↔ Resistor: Dissipação da energia regenerada.
  • Computador ↔ Volante: Comunicação por HID com retorno tátil.

Observações

  • As interfaces fornecidas (semicírculo com linha) e requeridas (semicírculo vazio) seguem a notação UML padrão.
  • A estrutura modular permite manutenção facilitada e possíveis expansões futuras no sistema.

Histórico de Versões

DataEditorDescrição
01/05/2025Rafael NobrePrimeira versão do documento
02/05/2025Rafael NobreAdição do Raspberry Pi e alterações
20/05/2025Alexandre BeckRevisão completa com base no novo diagrama